package com.ruijixiang.leetcode.hot100;

import java.util.HashSet;
import java.util.Set;

public class leetcode0141 {
    /**
     * 方法一：快慢指针
     * 方法二：Set方法
     * @param head
     * @return
     */
    public boolean hasCycle(ListNode head){
        // 方法一：快慢指针
//        ListNode slow=head;
//        ListNode fast=head;
//        while(fast!=null){
//            fast=fast.next;
//            if(fast!=null){
//                fast=fast.next;
//            }
//            if(fast==slow) return true;
//            slow=slow.next;
//        }
//        return false;
        // 方法二：Set
        Set<ListNode> set=new HashSet<>();
        while(head!=null){
            if(set.contains(head)) return true;
            set.add(head);
            head=head.next;
        }
        return false;
    }
}
